package com.dhcc.bpm.modules.scf.service.HomePageService;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhcc.bpm.modules.scf.entity.HomePage.*;

import java.util.List;

/**
 * 首页数据展示服务类
 */
public interface IScfHomePageService extends IService<ScfHomePage> {
    /**
     * 查询主体总数
     *
     * @return
     */
    String selectSubjectCounts(String[] orgCodes);

    /**
     * 查询各省存续企业数
     *
     * @return
     */
    List<ScfSubjectAddress> selectSubjectAddress(String[] orgCodes);

    /**
     * 查询各类主体数量
     *
     * @return
     */
    List<ScfSubjectCount> selectSubjectCount(String[] orgCodes);

    /**
     * 查询各月份主体数量
     *
     * @return
     */
    List<ScfSubjectCount> selectSubjectCountByMonth(String[] orgCodes);

    /**
     * 查询近30天成交信息
     *
     * @return
     */
    ScfHomePage selectDyCj(String[] orgCodes);

    /**
     * 查询各品名累计成交吨数
     *
     * @return
     */
    IPage<ScfGoodsWeightCount> selectGoodsWeightCount(IPage<ScfGoodsWeightCount> page, ScfGoodsWeightCount scfGoodsWeightCount);

    /**
     * 查询近一年平台成交额及当年纳税额
     *
     * @return
     */
    ScfHomePage selectDnCj(String[] orgCodes);

    /**
     * 查询累计平台成交额及当年纳税额
     *
     * @return
     */
    ScfHomePage selectLjCj( String[] orgCodes);

    /**
     * 当年订单成交量
     *
     * @return
     */
    ScfHomePage selectDnSalesCount(String[] orgCodes);

    /**
     * 当年成交吨数
     *
     * @return
     */
    ScfHomePage selectDnWeight(String[] orgCodes);

    /**
     * 累计订单成交量
     *
     * @return
     */
    ScfHomePage selectLjSalesCount(String[] orgCodes);

    /**
     * 累计成交吨数
     *
     * @return
     */
    ScfHomePage selectLjWeight(String[] orgCodes);

    /**
     * 累计减少碳排放量（万吨）
     *
     * @return
     */
    ScfHomePage selectCarbonEmissions(String[] orgCodes);

    /**
     * 实时成交信息
     *
     * @return
     */
    IPage<ScfSelRealtime> selectSelRealtime(IPage<ScfSelRealtime> page, ScfSelRealtime scfSelRealtime);

    /**
     * 利废企业成交排名
     *
     * @return
     */
    IPage<ScfSelRenewableRanking> selectSelRenewableRanking(IPage<ScfSelRenewableRanking> page, ScfSelRenewableRanking scfSelRenewableRanking);

    /**
     * 再生资源企业成交排名
     *
     * @return
     */
    IPage<ScfSelRecyclelingRanking> selectSelRecyclelingRanking(IPage<ScfSelRecyclelingRanking> page, ScfSelRecyclelingRanking scfSelRecyclelingRanking);

    /**
     * 供应商成交排名
     *
     * @return
     */
    IPage<ScfSelOwnerRanking> selectSelOwnerRanking(IPage<ScfSelOwnerRanking> page, ScfSelOwnerRanking scfSelOwnerRanking);

    /**
     * 查询折线图数据不包含部分
     *
     * @return
     */
    ScfLineChart selectLineChart( String[] orgCodes);

    /**
     * 查询折线图部分数据
     *
     * @return
     */
    List<ScfLineChartSection> selectLineChartSection( String[] orgCodes);
}
